package entity

import (
	"time"

	"gitee.com/linxing_3/sr-core/domain/model"
)

type FileInfo struct {
	Id      int       `json:"id" gorm:"primaryKey;autoIncrement;comment:文件id"` // 文件id
	Title   string    `json:"title" gorm:"comment:文件标题"`                       // 文件标题
	Path    string    `json:"path" gorm:"comment:文件路径"`                        // 文件路径
	Size    int64     `json:"size" gorm:"comment:文件大小"`                        // 文件大小
	Hash    string    `json:"hash" gorm:"comment:文件hash"`                      // 文件hash
	Mime    string    `json:"mime" gorm:"comment:文件mime"`                      // 文件mime
	Ext     string    `json:"ext" gorm:"comment:文件扩展名"`                        // 文件扩展名
	ModTime time.Time `json:"modTime" gorm:"comment:文件修改时间"`                   // 文件修改时间

	Previews []*FilePreview `json:"previews" gorm:"foreignKey:Id;references:Id"` // 文件预览
	Tags     []*FileTag     `json:"tags" gorm:"many2many:media_m2m_file_tags;"`  // 文件标签
	model.GAllInject
}

func (FileInfo) TableName() string {
	return "media_file_info"
}
